package com.ljf.eslab.lab.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ljf.common.utils.PageUtils;
import com.ljf.eslab.lab.dto.ReserInfoDTO;
import com.ljf.eslab.lab.entity.ReservationEntity;
import com.ljf.eslab.lab.vo.ReserDetailVo;

import java.util.List;
import java.util.Map;

/**
 * @author ljf
 * @email ljf@gmail.com
 * @date 2021-05-28 09:12:59
 */
public interface ReservationService extends IService<ReservationEntity> {

    PageUtils queryPage(Map<String, Object> params);

    List<ReserInfoDTO> listByTime(List<Integer> weeks, List<Integer> days, List<Integer> times);

    /**
     * 在指定时间
     *
     * @param weeks
     * @param days
     * @param times
     * @param labIds
     * @return
     */
    List<ReserInfoDTO> listByTimeAndIds(List<Integer> weeks, List<Integer> days, List<Integer> times, List<Integer> labIds);

    PageUtils pageByTime(IPage<ReservationEntity> page, List<Integer> week, List<Integer> day, List<Integer> time);

    void updateCidByIds(List<Integer> ids, Integer courseId);

    PageUtils pageByLids(IPage<ReserDetailVo> page, List<Integer> collect);

    PageUtils pageByCids(IPage <ReservationEntity> page, List<Integer> cids);

    PageUtils pageByTimeAndIds(IPage<ReserDetailVo> params, List<Integer> weeks, List<Integer> days, List<Integer> times, List<Integer> labIds);
}